---
title: Operations
summary: Operation catalog for SAIF.Services.WCF.UC4.Host, with per-contract detail on the UC4Service page.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-09-22
---

# Operations

This host publishes one service class, `UC4Service`, with eight operations reached through the single `UC4` route. The `[ServiceContract]` interface (`IUC4Service`) is not in this repository, so every operation name, parameter, and return type below is read from the implementing class's public members, not from the contract interface.

This page is the operation catalog and hub. `UC4Service`'s operations are documented in detail on [`contracts/uc4-service.md`](contracts/uc4-service.md).

## Operation surface derivation

| Aspect | Finding |
| --- | --- |
| Authoritative surface | Route registration (`UC4`) + implementing class public members |
| Contract assembly | `SAIF.Services.WCF.Contracts` (namespace) — external* |
| `[OperationContract]` visible in repository | No — contract assembly is external |
| Operation naming | Not observable — external contract** |
| Metadata document | `?wsdl` published (`<serviceMetadata httpGetEnabled="true"/>`) |

Because the contract interface is not in the repository, the catalog below is built entirely from the public members of `UC4Service` (`src/WCF/SAIF.Services.WCF.UC4.Host/UC4Service.cs`). Any `[OperationContract]` name override, `[FaultContract]` declaration, or documentation comment on the interface could not be inspected — this is the normal, expected state for this host, not a documentation gap. Each row below is marked `*` for that reason.

## Service class catalog

| Service class | Route | Contract | Operations | Documentation |
| --- | --- | --- | --- | --- |
| `UC4Service` | `UC4` | `IUC4Service` — external* | 8 | [Details](contracts/uc4-service.md) |

## Contract assembly

| Aspect | Finding |
| --- | --- |
| Assembly | `SAIF.Services.WCF.Contracts` (namespace; assembly identity not resolvable from this project)* |
| Location | External to this repository* |
| Referenced by | `SAIF.Services.WCF.UC4.Host` (via `using`-alias only; no `<Reference>`, no `<ProjectReference>`, no `packages.config` entry) |
| Contract interfaces | `IUC4Service` |
| Arrives via | `SAIF.Framework.Core` 2.0.23079.1 (transitive)* |
| Inspected | No — resolved by name from `using` directives only |

> * The contract assembly is referenced by name and is not present in this repository. Operation names, parameters, and return types on this page are read from the implementing class. Any `[OperationContract]` name override, `[FaultContract]` declaration, or documentation comment on the interface could not be inspected.

## Operation catalog

| Operation | Service class | Input message | Output message | Faults | Auth | Rules |
| --- | --- | --- | --- | --- | --- | --- |
| [`ExecuteJob`](contracts/uc4-service.md#executejob) (Obsolete) | `UC4Service` | `UC4Environment environment`, `string jobName` | `UC4Result` | Not observable — external contract** | None in code | [BR-UC4-001](business-rules.md#br-uc4-001-job-allowed-by-uc4-rules-document), [BR-UC4-006](business-rules.md#br-uc4-006-enum-operation-forms-are-obsolete), [BR-UC4-009](business-rules.md#br-uc4-009-positional-values-are-named-arg1-arg2) |
| [`ExecuteJobWithClientId`](contracts/uc4-service.md#executejobwithclientid) | `UC4Service` | `short environment`, `string jobName` | `UC4Result` | Not observable — external contract** | None in code | [BR-UC4-001](business-rules.md#br-uc4-001-job-allowed-by-uc4-rules-document), [BR-UC4-009](business-rules.md#br-uc4-009-positional-values-are-named-arg1-arg2) |
| [`ExecuteJobWithJson`](contracts/uc4-service.md#executejobwithjson) (Obsolete) | `UC4Service` | `UC4Environment environment`, `string jobName`, `string jsonKeyValuePairs` | `UC4Result` | Not observable — external contract** | None in code | [BR-UC4-001](business-rules.md#br-uc4-001-job-allowed-by-uc4-rules-document), [BR-UC4-006](business-rules.md#br-uc4-006-enum-operation-forms-are-obsolete), [BR-UC4-013](business-rules.md#br-uc4-013-json-parameters-parsed-before-the-allow-deny-gate) |
| [`ExecuteJobWithJsonAndClientId`](contracts/uc4-service.md#executejobwithjsonandclientid) | `UC4Service` | `short environment`, `string jobName`, `string jsonKeyValuePairs` | `UC4Result` | Not observable — external contract** | None in code | [BR-UC4-001](business-rules.md#br-uc4-001-job-allowed-by-uc4-rules-document), [BR-UC4-004](business-rules.md#br-uc4-004-job-name-must-not-be-null), [BR-UC4-013](business-rules.md#br-uc4-013-json-parameters-parsed-before-the-allow-deny-gate) |
| [`ExecuteJobWithValues`](contracts/uc4-service.md#executejobwithvalues) (Obsolete) | `UC4Service` | `UC4Environment environment`, `string jobName`, `params string[] values` | `UC4Result` | Not observable — external contract** | None in code | [BR-UC4-001](business-rules.md#br-uc4-001-job-allowed-by-uc4-rules-document), [BR-UC4-006](business-rules.md#br-uc4-006-enum-operation-forms-are-obsolete), [BR-UC4-009](business-rules.md#br-uc4-009-positional-values-are-named-arg1-arg2) |
| [`ExecuteJobWithValuesAndClientId`](contracts/uc4-service.md#executejobwithvaluesandclientid) | `UC4Service` | `short environment`, `string jobName`, `params string[] values` | `UC4Result` | Not observable — external contract** | None in code | [BR-UC4-001](business-rules.md#br-uc4-001-job-allowed-by-uc4-rules-document), [BR-UC4-004](business-rules.md#br-uc4-004-job-name-must-not-be-null), [BR-UC4-009](business-rules.md#br-uc4-009-positional-values-are-named-arg1-arg2) |
| [`ExecuteJobWithParameters`](contracts/uc4-service.md#executejobwithparameters) (Obsolete) | `UC4Service` | `UC4Environment environment`, `string jobName`, `IEnumerable<KeyValuePair<string,string>> parameters` | `UC4Result` | Not observable — external contract** | None in code | [BR-UC4-001](business-rules.md#br-uc4-001-job-allowed-by-uc4-rules-document), [BR-UC4-006](business-rules.md#br-uc4-006-enum-operation-forms-are-obsolete) |
| [`ExecuteJobWithParametersAndClientId`](contracts/uc4-service.md#executejobwithparametersandclientid) | `UC4Service` | `short environment`, `string jobName`, `IEnumerable<KeyValuePair<string,string>> parameters` | `UC4Result` | Not observable — external contract** | None in code | [BR-UC4-001](business-rules.md#br-uc4-001-job-allowed-by-uc4-rules-document), [BR-UC4-004](business-rules.md#br-uc4-004-job-name-must-not-be-null) |

<!-- "Not observable" reflects that `IUC4Service` is external and unreadable: no [FaultContract] usage or fault metadata is visible locally, and no `FaultException` is constructed in the host source. No operation carries an authorization attribute or programmatic check. See faults.md and authentication-authorization.md. All eight operations also reach [BR-UC4-002](business-rules.md#br-uc4-002-default-allow-for-unmatched-environment), [BR-UC4-003](business-rules.md#br-uc4-003-rule-evaluation-order-and-match-type), [BR-UC4-005](business-rules.md#br-uc4-005-blocked-job-returns-empty-result-with-no-explanation), [BR-UC4-008](business-rules.md#br-uc4-008-every-invocation-is-traced-at-info), [BR-UC4-010](business-rules.md#br-uc4-010-downstream-service-address-resolved-per-call), [BR-UC4-011](business-rules.md#br-uc4-011-forwarded-job-stamped-with-host-identity), and [BR-UC4-012](business-rules.md#br-uc4-012-downstream-result-mapped-field-by-field) — see business-rules.md for the full reach table. -->

## Dispatch diagram

The following diagram visualizes how a caller reaches a handling operation.

```mermaid
flowchart TD
    REQ["SOAP request"] --> ROUTE{"Route match"}
    ROUTE -->|"UC4"| SVC["UC4Service"]
    ROUTE -->|"No match"| NF["No service at address<br>IIS 404 before dispatch"]
    SVC --> BEHAVIOR["LogErrorBehavior<br>observability only"]
    BEHAVIOR --> OPSEL{"Operation selected<br>by SOAP action"}
    OPSEL -->|"ExecuteJob (enum)"| CONV1["Convert enum to<br>client id, delegate"]
    OPSEL -->|"ExecuteJobWithJson (enum)"| CONV2["Convert enum to<br>client id, delegate"]
    OPSEL -->|"ExecuteJobWithValues (enum)"| CONV3["Convert enum to<br>client id, delegate"]
    OPSEL -->|"ExecuteJobWithParameters (enum)"| CONV4["Convert enum to<br>client id, delegate"]
    OPSEL -->|"AndClientId forms"| GATE["IsJobAllowed<br>uc4.rules evaluation"]
    CONV1 --> GATE
    CONV2 --> GATE
    CONV3 --> GATE
    CONV4 --> GATE
    GATE -->|"blocked"| EMPTY["Return empty UC4Result"]
    GATE -->|"allowed"| CLIENT["UC4Client forwards job<br>to downstream service"]
    CLIENT --> OK["Response message"]
    EMPTY --> OK
    CLIENT --> FAULT["Unhandled exception<br>surfaced with full detail"]
    GATE --> FAULT
```

## Operations by process

| Operation | Process |
| --- | --- |
| [`ExecuteJob`](contracts/uc4-service.md#executejob) | [OP-001](operations/execute-job.md) |
| [`ExecuteJobWithClientId`](contracts/uc4-service.md#executejobwithclientid) | [OP-002](operations/execute-job-with-client-id.md) |
| [`ExecuteJobWithJson`](contracts/uc4-service.md#executejobwithjson) | [OP-003](operations/execute-job-with-json.md) |
| [`ExecuteJobWithJsonAndClientId`](contracts/uc4-service.md#executejobwithjsonandclientid) | [OP-004](operations/execute-job-with-json-and-client-id.md) |
| [`ExecuteJobWithValues`](contracts/uc4-service.md#executejobwithvalues) | [OP-005](operations/execute-job-with-values.md) |
| [`ExecuteJobWithValuesAndClientId`](contracts/uc4-service.md#executejobwithvaluesandclientid) | [OP-006](operations/execute-job-with-values-and-client-id.md) |
| [`ExecuteJobWithParameters`](contracts/uc4-service.md#executejobwithparameters) | [OP-007](operations/execute-job-with-parameters.md) |
| [`ExecuteJobWithParametersAndClientId`](contracts/uc4-service.md#executejobwithparametersandclientid) | [OP-008](operations/execute-job-with-parameters-and-client-id.md) |

## Coverage

| Check | Result |
| --- | --- |
| Service classes registered in the route table | 1 |
| Service classes with a `contracts/` page | 1 |
| Public operations across all service classes | 8 |
| Rows in the operation catalog | 8 |
| Operations marked `[Obsolete]` | 4 |

## Related documentation
- [Index](index.md)
- [Overview](overview.md)
- [Architecture](architecture.md)
- [Activation and hosting](activation-hosting.md)
- [Faults and error pipeline](faults.md)
- [Authentication and authorization](authentication-authorization.md)
- [Dependencies](dependencies.md)
- [Configuration](configuration.md)
- [Operations and processes](operations-processes.md)
- [Business rules](business-rules.md)
- [Operational runbook](operational-runbook.md)
- [Tech debt](tech-debt.md)

> **Note:** Statements marked with `*` were inferred from code structure, naming
> conventions, or contextual evidence where direct confirmation was not available
> in source artifacts. Statements marked with `**` could not be confirmed; treat
> as unknown until verified.

## Sources
- `src/WCF/SAIF.Services.WCF.UC4.Host/UC4Service.cs`
- `src/WCF/SAIF.Services.WCF.UC4.Host/Global.asax.cs`
- `src/WCF/SAIF.Services.WCF.UC4.Host/Web.config`
- `src/WCF/SAIF.Services.WCF.UC4.Host/SAIF.Services.WCF.UC4.Host.csproj`
- `src/WCF/SAIF.Services.WCF.UC4.Host/packages.config`
